//package com.gaga.console.base.utils;
//
//import cn.hutool.core.lang.UUID;
//import com.alibaba.druid.pool.DruidDataSource;
//import com.gaga.metadata.common.enums.TransFormType;
//import com.gaga.metadata.driver.Driver;
//import com.gaga.metadata.driver.DriverConfig;
//import lombok.Data;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.PostConstruct;
//import javax.annotation.Resource;
//
//@Component
//@Data
//public class DriverUtils {
//
//    @Resource
//    private DruidDataSource dataSource;
//
//    private DriverConfig srcDriverConfig;
//
//    private static int maxActive = 0;
//    private static int initialSize = 0;
//
//    @Value(value = "${screen.schema}")
//    private String dataSourceSchema;
//
//    private DriverUtils() {
//    }
//
//    @PostConstruct
//    public void init() {
//        TransFormType transFormType = TransFormType.ofCode(dataSource.getDbType());
//        if (transFormType == null) {
//            throw new RuntimeException("启动报错，报错原因是DriverUtils类暂未适配" + dataSource.getDbType() + "类型数据库");
//        }
//        maxActive = dataSource.getMaxActive();
//        initialSize = dataSource.getInitialSize();
//    }
//    /**
//     * 获取datacenter和数据库相关的driver
//     *
//     * @return
//     */
//    public DriverConfig driverConfig() {
//        if (srcDriverConfig == null) {
//            TransFormType transFormType = TransFormType.ofCode(dataSource.getDbType());
//            if (transFormType == null) {
//                throw new RuntimeException("DriverUtils类暂未适配" + dataSource.getDbType() + "类型数据库");
//            }
//            srcDriverConfig = new DriverConfig(dataSourceSchema, UUID.fastUUID().toString(true), transFormType.getType(),dataSource.getUrl(), dataSource.getUsername(), dataSource.getPassword(), dataSource.getName());
//            srcDriverConfig.setInitialSize(initialSize);
//            srcDriverConfig.setMaxActiveSize(maxActive);
//        }
//        return srcDriverConfig;
//    }
//
//    public Driver getDataBaseDriver() {
//        return Driver.build(driverConfig());
//    }
//
//
//
//}
